package com.andkrup.easygame.game.objects {
	import com.andkrup.geom.Vector2D;	
	
	import flash.geom.Point;	
	
	import com.andkrup.easygame.game.objects.armor.IHelmet;	
	import com.andkrup.easygame.game.objects.armor.IBodyArmor;	
	import com.andkrup.easygame.game.objects.weapons.ISidearm;	
	import com.andkrup.easygame.game.objects.weapons.IWeapon;	
	import com.andkrup.easygame.game.objects.ICharacter;
	
	/**
	 * @author Andkrup
	 */
	public class Rook implements ICharacter {
		private var baseprops:Object;
		private var _skills:Object;
		private var _experiences:Object;
		private var _equipment:Array;
		private var _name:String;
		private var _id:uint;
		private var _gender:String;

		public function set id(value:uint):void{
			_id = value;
		}
		public function get id():uint{
			return _id;
		}
		public function set name(value:String):void{
			_name = value;
		}
		public function get name():String{
			return _name;
		}
		
		public function set gender(value:String):void{
			_gender = value.charAt();
		}
		public function get gender():String{
			return _gender;
		}
		public function get position():Point{
			return null;
		}
		
		public function get primaryWeapon() : IWeapon {
			return null;
		}
		
		public function get sidearm() : ISidearm {
			return null;
		}
		
		public function get bodyArmor() : IBodyArmor {
			return null;
		}
		
		public function get helmet() : IHelmet {
			return null;
		}
		
		public function get primaryClips() : uint {
			return 0;
		}
		
		public function get sidearmClips() : uint {
			return 0;
		}
		
		public function get equipment() : Array {
			return null;
		}
		
		public function get health() : uint {
			return 0;
		}
		
		
		public function set primaryWeapon(value : IWeapon) : void {
		}
		
		public function set sidearm(value : ISidearm) : void {
		}
		
		public function set bodyArmor(value : IBodyArmor) : void {
		}
		
		public function set helmet(value : IHelmet) : void {
		}
		
		public function set primaryClips(value : uint) : void {
		}
		
		public function set sidearmClips(value : uint) : void {
		}
		
		public function canEquip(object:Object, amount:uint = 1):Boolean{
			return true;
		}
		
		public function set health(value : uint) : void {
		}
		
		public function set baseProps(value:Object):void{
		}
		/**
		 * Describes a characters basic properties
		 */
		public function get baseProps():Object{
			return baseprops;
		}
		/**
		 * Describes a characters learned skills, such as markmanship, driving, lock-picking, etc
		 */
		public function set skills(value:Object):void{
			
		}
		/**
		 * Describes a characters learned skills, such as markmanship, driving, lock-picking, etc
		 */
		public function get skills():Object{
			return _skills;
		}
		/**
		 * Describes a set of properties gaiend throughout the game, rank, experience-points, mission-count, kills, etc
		 */
		public function set experiences(value:Object):void{
			_experiences = value;
		}
		/**
		 * Measures how much equipment a soldier may carry
		 */
		public function get experiences():Object{
			return _experiences;
		}
		
		
		public function Rook(){
			_equipment = [];
			_experiences = [];
			_skills = [];
			baseprops = {};
		}

		public function addEquipment(object:Object, amount:uint = 1):void{
		}
		
		public function removeEquipment(object:Object, amount:uint = 1):Boolean{
			return true;
		}
		public function hitTest(vector:Vector2D):Boolean{
			return false;
		}
	}
}
